---
title: clsLegalCase
summary: Represents the core legal-case header record — the central aggregate root for the legal case-management domain, tying together status, hearing, attorney, and adjuster assignment.
status: draft
owner: SAIF Case Management team
last_reviewed: 2026-08-21
library: SAIF.Business.Claim.Legal
reference_type: embedded
---

# clsLegalCase

Represents the core legal-case header record — the central aggregate root for the legal case-management domain, tying together status, hearing, attorney, and adjuster assignment.

| Field | Value |
|---|---|
| **Base class** | `clsBusinessBase` (`SAIF.Framework.Core`)† |
| **Source file** | `SAIF.Business.Claim.Legal\LegalNet\clsLegalCase.vb` |

## Public members

### Properties

| Member | Signature | Purpose |
|---|---|---|
| `LegalCaseID` | `ReadOnly Property LegalCaseID() As Decimal` | The ID which uniquely identifies this legal case. |
| `CaseTypeCode` | `Property CaseTypeCode() As String` | Gets or sets the type of case (e.g. `FED`, `STATE`). |
| `IsFederalCase` | `ReadOnly Property IsFederalCase As Boolean` | Indicates whether `CaseTypeCode` is `FED`. |
| `IsStateCase` | `ReadOnly Property IsStateCase As Boolean` | Indicates whether `CaseTypeCode` is `STATE`. |
| `RequestTypeCode` | `Property RequestTypeCode() As String` | Gets or sets the type of legal case request; setting it derives `CaseTypeCode` and initializes `CaseStatusCode`/`ClaimImageAlertsFlag` defaults. |
| `IsWCBRequest` | `ReadOnly Property IsWCBRequest As Boolean` | Indicates whether `RequestTypeCode` is `WCB`. |
| `IsDCBSRequest` | `ReadOnly Property IsDCBSRequest As Boolean` | Indicates whether `RequestTypeCode` is `DCBS`. |
| `IsFederalRequest` | `ReadOnly Property IsFederalRequest As Boolean` | Indicates whether `RequestTypeCode` is `FED`. |
| `IsPreLit` | `ReadOnly Property IsPreLit As Boolean` | Indicates whether `RequestTypeCode` is `PRL` (pre-litigation). |
| `IsReconcideration` | `ReadOnly Property IsReconcideration As Boolean` | Indicates whether the case's `RequestIssues` include a `RECON` issue without a `CLASS` issue.* |
| `HasVocIssues` | `ReadOnly Property HasVocIssues As Boolean` | Indicates whether the case's `RequestIssues` include any vocational issue code (`PDIS`, `VOCA`, `VOCA2`).* |
| `RequestTypeDescription` | `ReadOnly Property RequestTypeDescription As String` | Gets the request-type description resolved from the request-type code table. |
| `CaseStatusCode` | `Property CaseStatusCode() As String` | Gets or sets the status of the legal case. |
| `CaseStatus` | `ReadOnly Property CaseStatus() As String` | Resolves `CaseStatusCode` to its descriptive code-table label.* |
| `IsCaseInActiveStatus` | `ReadOnly Property IsCaseInActiveStatus As Boolean` | Indicates whether the current case status is an active status per the case-status code table. |
| `ClaimID` | `Property ClaimID() As Decimal` | Gets or sets the claim that this legal case belongs to. |
| `Claim` | `ReadOnly Property Claim As clsclaimdata` | Returns claim information for `ClaimID`, retrieved and cached on first access. |
| `RequestDate` | `Property RequestDate() As Date` | Gets or sets the date of the request. |
| `CaseWeightValue` | `Property CaseWeightValue() As Decimal` | Gets or sets the weight value for purposes of assignment. |
| `IsNewWCBNumberRequest` | `Property IsNewWCBNumberRequest() As Boolean` | Gets or sets whether this required a new WCB number. |
| `RequestedBYCode` | `Property RequestedBYCode() As String` | Gets or sets whom requested the case. |
| `RequestedByDescription` | `ReadOnly Property RequestedByDescription As String` | Resolves `RequestedBYCode` to its descriptive code-table label. |
| `IsAllDayHearingRequest` | `Property IsAllDayHearingRequest() As Boolean` | Gets or sets whether this is an all-day hearing request. |
| `IsStressClaim` | `Property IsStressClaim() As Boolean` | Gets or sets whether this is a stress-related claim; setting it also adjusts `CaseWeightValue` (3 if stress, 1 otherwise). |
| `SendDefFlag` | `Property SendDefFlag() As String` | Flag controlling whether the defense should be sent notification.* |
| `EmployerEvaluationNumber` | `Property EmployerEvaluationNumber() As Decimal` | Gets or sets the employer evaluation number. |
| `IsConsolidatedCase` | `Property IsConsolidatedCase() As Boolean` | Gets or sets whether this case is consolidated with another legal case. |
| `ClaimImageAlertsFlag` | `Property ClaimImageAlertsFlag() As String` | Flag controlling whether claim-image alerts are generated for this case.* |
| `WCBNumber` | `Property WCBNumber As String` | Gets or sets the state Workers' Compensation Board (WCB) case number assigned once the request is docketed. |
| `DCBSNumber` | `Property DCBSNumber As String` | Gets or sets the Oregon Department of Consumer and Business Services (DCBS) case number assigned for DCBS-handled requests. |
| `WorkerAttorneyID` | `Property WorkerAttorneyID As Decimal` | Gets or sets the provider-location ID belonging to the worker's attorney. |
| `WorkerAttorneyFirmID` | `Property WorkerAttorneyFirmID As Decimal` | Gets or sets the provider-location ID of the worker attorney's firm. |
| `OARDueDate` | `Property OARDueDate As Date` | Gets or sets the OAR (order allowing request) due date; auto-computed from `RequestPostmarkDate` for non-reconsideration WCB requests. |
| `OARMailedDate` | `Property OARMailedDate As Date` | Gets or sets the date the OAR was mailed. |
| `LegalFileCreateDate` | `Property LegalFileCreateDate As Date` | Gets or sets the date the legal file was created; transitioning this from empty triggers legal-case-evaluation creation on save. |
| `AcknowledgeDate` | `Property AcknowledgeDate As Date` | Gets or sets the acknowledge date. |
| `RequestReceiptDate` | `Property RequestReceiptDate As Date` | Gets or sets the date the request for hearing was received. |
| `RequestPostmarkDate` | `Property RequestPostmarkDate As Date` | Gets or sets the postmark date of the request; setting it computes `OARDueDate` (postmark + 10 days) for non-reconsideration WCB requests. |
| `ReconLetterMailedDate` | `Property ReconLetterMailedDate As Date` | Gets or sets the date the reconsideration letter was mailed. |
| `ReconPacketReceivedDate` | `Property ReconPacketReceivedDate As Date` | Gets or sets the date the reconsideration packet was received. |
| `DismissalDate` | `Property DismissalDate As Date` | Gets or sets the date the case was dismissed. |
| `SettlementDate` | `Property SettlementDate As Date` | Gets or sets the date of settlement. |
| `DefSentDate` | `Property DefSentDate As Date` | Date the defense materials were sent.* |
| `OWCPNumber` | `Property OWCPNumber As String` | Gets or sets the OWCP number. |
| `OALJNumber` | `Property OALJNumber As String` | Gets or sets the OALJ number. |
| `BRBNumber` | `Property BRBNumber As String` | Gets or sets the BRB number. |
| `WorkerSSN` | `ReadOnly Property WorkerSSN As String` | Masked worker SSN derived from the associated `Claim`, shown as `***-**-####` when a full 11-character SSN is present.* |
| `ClaimImageAlertsUpdateDate` | `ReadOnly Property ClaimImageAlertsUpdateDate As Date` | Date the claim-image alerts flag was last updated. |
| `MostRecentHearingID` | `Property MostRecentHearingID As Decimal` | Gets or sets the ID of the most recent hearing; maintained by a database trigger. |
| `MostRecentHearing` | `ReadOnly Property MostRecentHearing() As clsLegalSchedule` | Resolves `MostRecentHearingID` to the matching entry in `Schedules`. |
| `HasOtherCases` | `ReadOnly Property HasOtherCases As Boolean` | Indicates whether the worker on this claim has more than one legal case, computed via `CheckForOtherCases`. |
| `CreateDate` | `ReadOnly Property CreateDate() As Date` | Date the legal case record was created. |
| `CreateUser` | `ReadOnly Property CreateUser() As String` | User ID that created the legal case record. |
| `UpdateDate` | `ReadOnly Property UpdateDate As Date` | Date the legal case record was last updated. |
| `UpdateUser` | `ReadOnly Property UpdateUser As String` | User ID that last updated the legal case record. |
| `UnfiledLCE` | `ReadOnly Property UnfiledLCE As Boolean` | Indicates whether the most recent legal-case evaluation has a due date, is not filed, and is not excused (i.e., an evaluation remains outstanding).* |
| `Schedules` | `ReadOnly Property Schedules As clsLegalScheduleCollection` | Lazily loads and returns the collection of legal schedules (hearings) for this case. |
| `Outcomes` | `ReadOnly Property Outcomes As clsCaseOutcomeCollection` | Lazily loads and returns the collection of case outcomes for this case. |
| `CaseCosts` | `ReadOnly Property CaseCosts As clsCaseCostCollection` | Lazily loads and returns the collection of case costs for this case. |
| `RequestIssues` | `ReadOnly Property RequestIssues As clsRequestIssueCollection` | Lazily loads and returns the collection of request issues for this case. |
| `FileLocations` | `ReadOnly Property FileLocations As clsLegalFileLocationCollection` | Lazily loads and returns the collection of legal file locations for this case. |
| `StatusHistory` | `ReadOnly Property StatusHistory As clsCaseStatusHistoryCollection` | Lazily loads and returns the collection of case status history entries for this case. |
| `Evaluations` | `ReadOnly Property Evaluations As clsLegalCaseEvaluationCollection` | Lazily loads and returns the collection of legal case evaluations for this case. |
| `IsSecondaryConsolidated` | `ReadOnly Property IsSecondaryConsolidated As Boolean` | Indicates whether this case is the secondary case in any of its `Consolidations`. |
| `IsPrimaryConsolidated` | `ReadOnly Property IsPrimaryConsolidated As Boolean` | Indicates whether this case is the primary case in any of its `Consolidations`. |
| `Consolidations` | `ReadOnly Property Consolidations As clsConsolidations` | Lazily loads (via `GetConsolidations`) and returns the case's consolidation records. |
| `ActiveConsolidations` | `ReadOnly Property ActiveConsolidations As clsConsolidations` | Returns the subset of `Consolidations` that have a secondary case assigned. |
| `Alerts` | `ReadOnly Property Alerts As IEnumerable(Of clsClaimImageAlertsHistory)` | Lazily loads (via `GetAlerts`) and returns the claim-image-alert history for this case. |
| `Appeals` | `ReadOnly Property Appeals As clsAppealCollection` | Lazily loads and returns the collection of appeals filed against this case. |
| `IsValid` | `Overrides ReadOnly Property IsValid() As Boolean` | Extends the base validity check to also validate `RequestIssues`, `Outcomes`, `CaseCosts`, `Schedules`, `Evaluations`, and `FileLocations`. Overrides `clsBusinessBase.IsValid`. |
| `IsDirty` | `Overrides ReadOnly Property IsDirty() As Boolean` | Extends the base dirty check to report dirty when `Outcomes`, `RequestIssues`, `Schedules`, `Evaluations`, or `FileLocations` have pending changes. Overrides `clsBusinessBase.IsDirty`. |

### Methods

| Member | Signature | Purpose |
|---|---|---|
| `UpdateHearingSeq` | `Sub UpdateHearingSeq()` | Invokes `pk80001_legalnet.updateHearingSeqNum` to refresh the case's most-recent-hearing sequence number in the database. |
| `CheckForOtherCases` | `Function CheckForOtherCases() As Integer` | Calls the `LegalApi` `CasesByWorker` endpoint to count legal cases for the case's worker. |
| `GetConsolidations` | `Sub GetConsolidations(Optional inRefreshList As Boolean = False)` | Loads (or reloads) the `Consolidations` collection from the `LegalApi` `ConsolidatedCases` endpoint. |
| `SetWCBNumberNull` | `Sub SetWCBNumberNull()` | Clears `WCBNumber`. |
| `SetDcbsNumNull` | `Sub SetDcbsNumNull()` | Clears `DCBSNumber`. |
| `SetWorkerAttyProvLocIDNull` | `Sub SetWorkerAttyProvLocIDNull()` | Clears `WorkerAttorneyID`. |
| `SetWorkerAttyFirmProvLocIDNull` | `Sub SetWorkerAttyFirmProvLocIDNull()` | Clears `WorkerAttorneyFirmID`. |
| `SetOarDueDateNull` | `Sub SetOarDueDateNull()` | Clears `OARDueDate`. |
| `SetOarMailedDateNull` | `Sub SetOarMailedDateNull()` | Clears `OARMailedDate`. |
| `SetLegalFileCreateDateNull` | `Sub SetLegalFileCreateDateNull()` | Clears `LegalFileCreateDate`. |
| `SetAcknowledgeDateNull` | `Sub SetAcknowledgeDateNull()` | Clears `AcknowledgeDate`. |
| `SetRequestReceiptDateNull` | `Sub SetRequestReceiptDateNull()` | Clears `RequestReceiptDate`. |
| `SetRequestPostmarkDateNull` | `Sub SetRequestPostmarkDateNull()` | Clears `RequestPostmarkDate`. |
| `SetReconLetterMailedDateNull` | `Sub SetReconLetterMailedDateNull()` | Clears `ReconLetterMailedDate`. |
| `SetReconPacketReceivedDateNull` | `Sub SetReconPacketReceivedDateNull()` | Clears `ReconPacketReceivedDate`. |
| `SetDismissalDateNull` | `Sub SetDismissalDateNull()` | Clears `DismissalDate`. |
| `SetSettlementDateNull` | `Sub SetSettlementDateNull()` | Clears `SettlementDate`. |
| `SetDefSentDateNull` | `Sub SetDefSentDateNull()` | Clears `DefSentDate`. |
| `SetOwcpNumNull` | `Sub SetOwcpNumNull()` | Clears `OWCPNumber`. |
| `SetOaljNumNull` | `Sub SetOaljNumNull()` | Clears `OALJNumber`. |
| `SetBrbNumNull` | `Sub SetBrbNumNull()` | Clears `BRBNumber`. |
| `SetUpdateDateNull` | `Sub SetUpdateDateNull()` | Clears `UpdateDate`. |
| `SetUpdateUserNull` | `Sub SetUpdateUserNull()` | Clears `UpdateUser`. |
| `SetMostRecentHearingSeqNumNull` | `Sub SetMostRecentHearingSeqNumNull()` | Clears `MostRecentHearingID`. |
| `IsWcbNumNull` | `Function IsWcbNumNull() As Boolean` | Indicates whether `WCBNumber` is unset. |
| `IsDcbsNumNull` | `Function IsDcbsNumNull() As Boolean` | Indicates whether `DCBSNumber` is unset. |
| `IsWorkerAttyProvLocIDNull` | `Function IsWorkerAttyProvLocIDNull() As Boolean` | Indicates whether `WorkerAttorneyID` is unset. |
| `IsWorkerAttyFirmProvLocIDNull` | `Function IsWorkerAttyFirmProvLocIDNull() As Boolean` | Indicates whether `WorkerAttorneyFirmID` is unset. |
| `IsOarDueDateNull` | `Function IsOarDueDateNull() As Boolean` | Indicates whether `OARDueDate` is unset. |
| `IsOarMailedDateNull` | `Function IsOarMailedDateNull() As Boolean` | Indicates whether `OARMailedDate` is unset. |
| `IsLegalFileCreateDateNull` | `Function IsLegalFileCreateDateNull() As Boolean` | Indicates whether `LegalFileCreateDate` is unset. |
| `IsAcknowledgeDateNull` | `Function IsAcknowledgeDateNull() As Boolean` | Indicates whether `AcknowledgeDate` is unset. |
| `IsRequestReceiptDateNull` | `Function IsRequestReceiptDateNull() As Boolean` | Indicates whether `RequestReceiptDate` is unset. |
| `IsRequestPostmarkDateNull` | `Function IsRequestPostmarkDateNull() As Boolean` | Indicates whether `RequestPostmarkDate` is unset. |
| `IsReconLetterMailedDateNull` | `Function IsReconLetterMailedDateNull() As Boolean` | Indicates whether `ReconLetterMailedDate` is unset. |
| `IsReconPacketReceivedDateNull` | `Function IsReconPacketReceivedDateNull() As Boolean` | Indicates whether `ReconPacketReceivedDate` is unset. |
| `IsDismissalDateNull` | `Function IsDismissalDateNull() As Boolean` | Indicates whether `DismissalDate` is unset. |
| `IsSettlementDateNull` | `Function IsSettlementDateNull() As Boolean` | Indicates whether `SettlementDate` is unset. |
| `IsDefSentDateNull` | `Function IsDefSentDateNull() As Boolean` | Indicates whether `DefSentDate` is unset. |
| `IsOwcpNumNull` | `Function IsOwcpNumNull() As Boolean` | Indicates whether `OWCPNumber` is unset. |
| `IsOaljNumNull` | `Function IsOaljNumNull() As Boolean` | Indicates whether `OALJNumber` is unset. |
| `IsBrbNumNull` | `Function IsBrbNumNull() As Boolean` | Indicates whether `BRBNumber` is unset. |
| `IsUpdateDateNull` | `Function IsUpdateDateNull() As Boolean` | Indicates whether `UpdateDate` is unset. |
| `IsUpdateUserNull` | `Function IsUpdateUserNull() As Boolean` | Indicates whether `UpdateUser` is unset. |
| `IsMostRecentHearingSeqNumNull` | `Function IsMostRecentHearingSeqNumNull() As Boolean` | Indicates whether `MostRecentHearingID` is unset. |
| `NewLegalCase` (shared) | `Shared Function NewLegalCase(inDataportal As IDataPortalInfo) As clsLegalCase` | Factory that creates a new, unsaved `clsLegalCase`, seeding its child collections. |
| `GetLegalCase` (shared) | `Shared Function GetLegalCase(inDataportal As IDataPortalInfo, inLegalCaseID As Decimal) As clsLegalCase` | Factory that retrieves an existing `clsLegalCase` by ID. |
| `Equals` (shared overload) | `Overloads Shared Function Equals(objA As Object, objB As Object) As Boolean` | Compares two objects for equality by delegating to the instance `Equals` overload when both are `clsLegalCase`; returns `False` otherwise. |
| `Equals` | `Overloads Overrides Function Equals(inObject As Object) As Boolean` | Overrides `Object.Equals`; delegates to the `clsLegalCase`-typed overload when `inObject` is a `clsLegalCase`, otherwise returns `False`. |
| `Equals` (typed overload) | `Overloads Function Equals(inObject As clsLegalCase) As Boolean` | Compares two `clsLegalCase` instances for equality based on `LegalCaseID`. |
| `GetHashCode` | `Overrides Function GetHashCode() As Integer` | Overrides `Object.GetHashCode`; returns the hash code of `LegalCaseID` so equal cases hash identically. |
| `ToString` | `Overrides Function ToString() As String` | Overrides `Object.ToString`; returns `LegalCaseID` formatted as a string. |

### Constructors

| Member | Signature | Purpose |
|---|---|---|
| `New` | `Protected Friend Sub New()` | Framework-invoked constructor that registers business rules; instances are created through the `NewLegalCase`/`GetLegalCase` factory methods rather than directly. |

### Nested type clsClaimImageAlertsHistory

`clsClaimImageAlertsHistory` is a public nested class representing a single claim-image-alert history entry, returned via the `Alerts` collection.

| Member | Signature | Purpose |
|---|---|---|
| `ClaimImageAlrtHistSeqNum` | `ReadOnly Property ClaimImageAlrtHistSeqNum As Decimal` | Identifier of the claim-image-alert history record. |
| `LegalCaseID` | `ReadOnly Property LegalCaseID As Decimal` | Identifier of the legal case the alert history entry belongs to. |
| `IsClaimImageAlert` | `ReadOnly Property IsClaimImageAlert As String` | The claim-image alert flag, formatted as a `Y`/`N` string. |
| `UpdateDate` | `ReadOnly Property UpdateDate As Nullable(Of Date)` | Date the alert flag was last updated, or `Nothing` if never updated. |
| `UpdateUser` | `ReadOnly Property UpdateUser As String` | User ID that last updated the alert flag. |
| `New` | `Sub New(inClaimImageAlrtHistSeqNum As Decimal, inLegalCaseSeqNum As Decimal, inClaimImageAlertsFlag As Boolean, inUpdateDate As clsSmartDate, inUpdateUser As String)` | Constructs a populated, read-only history entry from the supplied values. |

## Inherited public members

The following members are inherited from `clsBusinessBase` (`SAIF.Framework.Core`) and are not re-declared in this class:

| Member | Kind | Description |
|---|---|---|
| `Save` | Method | Dispatches to the correct `IBusinessCriteria` CRUD SQL based on object state.† |
| `AddBusinessRules` | Method | Registers this class's business rules with the framework rule engine.† |

## Related SQL

- [DB-CLL-046](../../sql/SQL-046-legalcase.md)
- [DB-CLL-047](../../sql/SQL-047-legalcase.md)
- [DB-CLL-048](../../sql/SQL-048-legalcase.md)
- [DB-CLL-049](../../sql/SQL-049-legalcase.md)
- [DB-CLL-050](../../sql/SQL-050-legalcase.md)

## Related operations

- [Manage legal case lifecycle](../../operations/manage-legal-case.md)

> **Note:** Statements marked with † are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence. Statements marked with `**` could
> not be confirmed; treat as unknown until verified.

## Sources

- `SAIF.Business.Claim.Legal\LegalNet\clsLegalCase.vb`
